<?php
// +----------------------------------------------------------------------
// | 本文件由 php think make:middleware Check 生成
// | 中间件
// +----------------------------------------------------------------------

namespace app\middleware;

class Check
{
    // 入口执行方法
    public function handle($request, \Closure $next)
    {
        // 判断当前请求的name参数等于think的时候进行重定向处理。否则，请求将进一步传递到应用中。
        if ($request->param('name') == 'think'){
           return redirect('index/think');
        }

        // 前置中间件 和后置没有写法上没有本质区别,只是在相应输出上会有不同
        return $next($request);


        // 后置中间件
//        $response = $next($request);
//        // 添加中间件执行代码
//        return $response;

    }

    // 结束调度
    public function end(\think\Response $response)
    {
        // 回调行为
        // 在`end`方法里面不能有任何的响应输出。因为回调触发的时候请求响应输出已经完成了
    }
}
